This invention is generally related to client-server communication between computers over a network, and more particularly to identifying and locating services over a network.
The recent explosion in client-server communication has resulted in the availability of different types of services over computer networks such as the Internet. The computers on a network are typically configured with a client process ("client") that requests and obtains services from a server process ("server") that normally resides on a different computer on the network.
The network services ("services") that are typically available in most larger networks can be grouped into different types. One type of service is name identification, such as domain name registration and resolution used over the Internet. Domain name registration is used by providers of services, and, more generally, those wishing access to the Internet. The providers use the registration service to register themselves on the Internet by recording an alias and a corresponding unique network address in a service directory or database. Thereafter, the provider can be located by its alias using a domain name resolution service that accesses the service directory.
There are several software tools that help a user identify and locate the thousands of different services that may be available on a given network. For example, the popular "Web browsers", such as Netscape Navigator.TM. are commonly used to "surf" the Internet. Web browsers provide their user access to Internet services according to the Transport Control Protocol/Internet Protocol (TCP/IP) suite of network communication protocols ("network protocols").
If a user seeks a service and knows the alias of a service provider that offers a Web site for access to that service, then the Web browser can be used to look-up the network address of the server that provides the site by querying a domain name resolution service on the Internet. If the service provider had previously registered its name and network address, then the site's network or IP address is retrieved by the browser. The Web site services can then be accessed through the browser by issuing a properly configured request such as a Uniform Resource Locator (URL) that identifies the specific service protocol, the network address of the server, and any particular service options desired by the user such as the name of a file to be retrieved.
In the above scenario, the Web browser plays the role of an application program that must not only know the location (network address) of the provider of services, but also be fluent in TCP/IP which is the transport and network layer protocol suite used to communicate over the Internet. The problem is that the application cannot browse for network services, unless the exact location and network communication protocol used by a provider of the network service are known by the application.
Other software solutions exist that permit the browsing of network services, such as AppleTalk.RTM. Address Resolution Protocol (AARP) and Name Binding Protocol. These, however, are both specific to a network that is configured under AppleTalk.RTM..
In other words, although the application need not know the exact location of a service provider, a search of network services is performed only on a particular network protocol or on a single local area network. This becomes a problem when an application seeks to browse for services in a network other than its own.
Therefore, it would be desirable to provide a standard method and apparatus that allows any application program to locate a service provider without having to know the exact location of the provider or the details of the network protocol used on the provider's network. In other words, it is desirable to allow an application program to browse for network services in a way that is independent of the network protocol used by the provider of network services.